#include"DictServer.hpp"
#include<iostream>
#include<memory>
#include"Dictionary.hpp"

void Usage(std::string proc)
{
    std::cerr<<"Usage: "<<proc<<" localport"<<std::endl;
}

// std::string Translate(const std::string &word,const std::string &whoip,uint16_t whoport)
// {
//     return "hh";
// }

int main(int argc,char* argv[])
{
    if(argc!=2)//3
    {
        Usage(argv[0]);
        exit(0);
    }
    EnableConsoleLogStrategy();//先使用策略；启用空白日志策略
     uint16_t port =std::stoi(argv[1]);
     Dictionary dict("./dict.txt");
    
    // std::unique_ptr<UdpServer> usvr =std::make_unique<UdpServer>(ip,port);
    std::unique_ptr<DictServer> usvr =std::make_unique<DictServer>(port,
        [&dict](const std::string &word,const std::string &whoip,uint16_t whoport)->std::string{
            return dict.Translate(word,whoip,whoport);
        }
    );
    usvr->Init();
    usvr->Start();

    return 0;
}
//用普通用户进行测试时权限会不够，需要切换到root//未加入进sudor白名单的情况下